#include <iostream>
#include <unordered_map>

using namespace std;

const int N = 1e5 + 10;
int n, f[N];
unordered_map<int, int> mp;
int main()
{
	int ret = 0;
	cin >> n;
	mp[0] = 0; 
	for(int i = 1; i <= n; i++)
	{
		int x; cin >> x;
		if(x) f[i] = f[i - 1] + 1;
		else f[i] = f[i - 1] - 1;
		int t = f[i];
		if(mp.count(t)) ret = max(ret, i - mp[t]);
		else mp[t] = i;
	}
	cout << ret << endl;
	return 0;
}

//#include<bits/stdc++.h>
//using namespace std;
//int n,b[100010],g[100010],ans;
//bool a[100010];
//int main()
//{
//	
//	cin>>n;
//	for(int i=1;i<=n;i++)
//		cin>>a[i];
//	for(int i=1;i<=n;i++)
//		if(a[i]==1)
//			b[i]=b[i-1]+1;
//		else	b[i]=b[i-1];
//	for(int i=1;i<=n;i++)
//		if(a[i]==0)
//			g[i]=g[i-1]+1;
//		else	g[i]=g[i-1];
//	for(int i=0;i<=n;i++)
//	{
//		for(int j=i+ans;j<=n;j++)
//			if(b[j]-b[i]==g[j]-g[i])
//			{
//				if(j - i == 70) cout << i << ' ' << j << endl; 
//				ans=max(ans,j-i);
//			}
//				
//	}
//		
//	cout<<ans<<endl;
//	return 0;
//}
